"""
    4月新增：数据处理方法
"""
import json


def get_json(str_data):
    """
    增强版JSON解析函数，处理多种数据格式并自动转换特定字段
    """
    # 处理空值
    if str_data in (None, "", "/"):
        return ""

    # 如果已经是字典或列表，直接处理
    if isinstance(str_data, (dict, list)):
        return convert_json_fields(str_data)

    # 处理字符串
    if isinstance(str_data, str):
        try:
            # 处理Excel中可能存在的双引号转义问题
            str_data = str_data.replace('""', '"')
            data = json.loads(str_data)
            return convert_json_fields(data)
        except json.JSONDecodeError as e:
            print(f"JSON解析错误: {e}")
            return str_data

    return str_data


def convert_json_fields(data):
    """
    自动转换字典中需要JSON字符串化的字段
    """
    if isinstance(data, dict):
        for field in ["attributes", "reason"]:  # 需要转换的字段列表
            if field in data and isinstance(data[field], (dict, list)):
                data[field] = json.dumps(data[field], ensure_ascii=False)
        return data
    elif isinstance(data, list):
        return [convert_json_fields(item) for item in data]
    else:
        return data